<?php
namespace app\extra\MSM;
use app\extra\MSM\REST;

/*
 * 发送短信类
 */
class Message
{

    //主帐号,对应开官网发者主账号下的 ACCOUNT SID
    private $accountSid= '8a216da86150f043016164425f480473';
    
    //主帐号令牌,对应官网开发者主账号下的 AUTH TOKEN
    private $accountToken= '449876643b26431a800312a394c8ad3a';
    
    //应用Id，在官网应用列表中点击应用，对应应用详情中的APP ID
    //在开发调试的时候，可以使用官网自动为您分配的测试Demo的APP ID
    private $appId='8a216da86150f043016164425f9c0479';
    
    //请求地址
    //沙盒环境（用于应用开发调试）：sandboxapp.cloopen.com
    //生产环境（用户应用上线使用）：app.cloopen.com
    private $serverIP='app.cloopen.com';
    
    
    //请求端口，生产环境和沙盒环境一致
    private $serverPort='8883';
    
    //REST版本号，在官网文档REST介绍中获得。
    private $softVersion='2013-12-26';
    
    //构造方法中初始化短信的信息
//    public function __construct($accountSid,$accountToken,$appId,$serverIP,$serverPort,$softVersion)
//    {
//       $this->accountSid = '8aaf07085fc284f5015fd520f6810379';
//       $this->accountToken = '94d7956a8bb8463b8d949a14e781416d';
//       $this->appId = '8aaf07085fc284f5015fd520f6d3037f';
//       $this->serverIP = '8883';
//       $this->serverPort = 'app.cloopen.com';
//       $this->softVersion = '2013-12-26';
//    }
    
    /**
     * 发送模板短信
     * @param to 手机号码集合,用英文逗号分开
     * @param datas 内容数据 格式为数组 例如：array('Marry','Alon')，如不需替换请填 null
     * @param $tempId 模板Id,测试应用和未上线应用使用测试模板请填写1，正式应用上线后填写已申请审核通过的模板ID
     */
    function sendTemplateSMS($to,$datas,$tempId)
    {
        // 初始化REST SDK
        $rest = new REST($this->serverIP,$this->serverPort,$this->softVersion);
        $rest->setAccount($this->accountSid,$this->accountToken);
        $rest->setAppId($this->appId);
    
        // 发送模板短信
//        echo "Sending TemplateSMS to $to <br/>";
        $result = $rest->sendTemplateSMS($to,$datas,$tempId);
        if($result == NULL ) {
            return "result error!";
        }
        if($result->statusCode!=0) {
            //echo "error code :" . $result->statusCode . "<br>";
            //echo "error msg :" . $result->statusMsg . "<br>";
            //TODO 添加错误处理逻辑
            $arr = [
                'msg' => $result->statusMsg,
                'status' => 0
            ];
            return $arr;
        }else{

            $arr = [
                'msg' => '已发送',
                'status' => 1
            ];
            return $arr;
//            echo "Sendind TemplateSMS success!<br/>";
//            // 获取返回信息
//            $smsmessage = $result->TemplateSMS;
//            echo "dateCreated:".$smsmessage->dateCreated."<br/>";
//            echo "smsMessageSid:".$smsmessage->smsMessageSid."<br/>";
            //TODO 添加成功处理逻辑
        }
    }
    
    //Demo调用
    //**************************************举例说明***********************************************************************
    //*假设您用测试Demo的APP ID，则需使用默认模板ID 1，发送手机号是13800000000，传入参数为6532和5，则调用方式为           *
    //*result = sendTemplateSMS("13800000000" ,array('6532','5'),"1");																		  *
    //*则13800000000手机号收到的短信内容是：【云通讯】您使用的是云通讯短信模板，您的验证码是6532，请于5分钟内正确输入     *
    //*********************************************************************************************************************
}